<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">
    
    <f:metadata>
        <f:event type="preRenderView" 
                 listener="#{superfamiliaBean.validarAcceso}"/>
    </f:metadata>
    
    <ui:define name="cabecera">
        <title>Gestión de Súper-Familias</title>
        <link rel="shortcut icon"  
              href="/resources/imagenes/favicon.ico" />
    </ui:define>
    <ui:define name="contenido">
        <center>
            <!-- Tabla de Super-Familia -->
            <p:panel id="superFamiliaPnl" 
                     header="Listado de Superfamilias" 
                     styleClass="contenido">
                <h:form id="tablaSuperFamiliaFrm">
                    <p:dataTable id="tablaSuperFamiliaDtb" 
                                 var="superfamilia" 
                                 rows="10" 
                                 selectionMode="single"
                                 value="#{superfamiliaBean.listaEntidades}" 
                                 filteredValue="#{superfamiliaBean.listaEntidadesFiltradas}"
                                 rowKey="#{superfamilia.codigosuperfamilia}"
                                 paginator="true" 
                                 paginatorPosition="bottom" 
                                 resizableColumns="true"
                                 emptyMessage="No hay registros disponibles.">
                        
                        <p:column headerText="Superfamilia" 
                                  filterBy="#{superfamilia.nombre}" 
                                  sortBy="#{superfamilia.nombre}" 
                                  filterMatchMode="contains"
                                  style="font-size: 110%">
                            <h:outputText id="nombresuperfamiliaTxt" 
                                          value="#{superfamilia.nombre}" />
                        </p:column>   
                        
                        <p:column headerText="Estado" 
                                  filterBy="#{superfamilia.habilitado ? 
                                              'Habilitado' : 
                                              'Deshabilitado'}"
                                              filterOptions="#{superfamiliaBean.itemsEstado}"
                                  style="font-size: 110%">
                            <h:outputText id="habilitadoTxt" 
                                          value="#{superfamilia.habilitado ? 'Habilitado' : 'Deshabilitado'}" />
                        </p:column>
                        
                        <p:column headerText="Taxones" 
                                  styleClass="columna">
                            <p:commandButton 
                                 id="taxonesBtn"  
                                 icon="ui-icon-search"
                                 type="button"
                                 title="Ver"/>
                            <p:overlayPanel 
                                id="taxonesPnl" 
                                for="taxonesBtn" 
                                appendToBody="true" 
                                showEvent="mouseup"
                                hideEvent="mouseup"
                                dynamic="true">
                                <p:dataTable 
                                    id="taxonesTbl" 
                                    value=""
                                    rows="1"
                                    style="text-align: center; 
                                        font-size: 110%">
                                    <p:column headerText="Phylum">
                                        <h:outputText value="#{superfamilia.orden.clase.phylum.nombre}" />
                                    </p:column>

                                    <p:column headerText="Clase">
                                        <h:outputText value="#{superfamilia.orden.clase.nombre}" />
                                    </p:column>

                                    <p:column headerText="Subclase">
                                        <h:outputText value="#{superfamilia.orden.clase.subclase}" />
                                    </p:column>
                                    <p:column headerText="Infraclase">
                                        <h:outputText value="#{superfamilia.orden.clase.infraclase}" />
                                    </p:column>
                                    <p:column headerText="Orden">
                                        <h:outputText value="#{superfamilia.orden.nombre}" />
                                    </p:column>
                                    <p:column headerText="Suborden">
                                        <h:outputText value="#{superfamilia.orden.suborden}" />
                                    </p:column>
                                </p:dataTable>
                            </p:overlayPanel>
                        </p:column>
                          
                        <p:column headerText="Modificar"
                                  style="font-size: 110%"
                                  rendered="#{sesionBean.verificarPermiso('modificar','superfamilia')}">
                            <center>
                                <p:commandButton id="modificarBtn" 
                                                 title="Modificar" 
                                                 icon="ui-icon-pencil"
                                                 actionListener="#{superfamiliaBean.prepararModificacion(superfamilia)}"
                                                 oncomplete="guardarSuperFamiliaWgt.show()"
                                                 update=":guardarSuperFamiliaFrm:guardarSuperFamiliaPnl">
                                    <f:setPropertyActionListener target="#{superfamiliaBean.operacionActual}"
                                                                    value="ACTUALIZACION" />
                                </p:commandButton>
                            </center>
                        </p:column>  
                            
                        <p:column headerText="Eliminar"
                                  style="font-size: 110%"
                                  rendered="#{sesionBean.verificarPermiso('eliminar','superfamilia')}">
                             <center>
                                 <p:commandButton id="eliminarBtn"
                                                  title="Eliminar" 
                                                  actionListener="#{superfamiliaBean.prepararEliminacion(superfamilia)}"
                                                  icon="ui-icon-trash"
                                                  update="@form" 
                                                  oncomplete="confirmacionWgt.show()">
                                     <f:setPropertyActionListener target="#{superfamiliaBean.operacionActual}" 
                                                                  value="ELIMINACION" />
                                 </p:commandButton>
                             </center>
                        </p:column>
                        <f:facet name="footer">
                            <p:commandButton id="agregarBtn" value="Nueva Superfamilia"
                                             oncomplete="guardarSuperFamiliaWgt.show()"
                                             actionListener="#{superfamiliaBean.prepararAdicion}"
                                             update=":guardarSuperFamiliaFrm:guardarSuperFamiliaPnl"
                                             title="Agregar nueva super familia" 
                                             icon="ui-icon-document" 
                                             style="float:left; font-size: 110%"
                                             rendered="#{sesionBean.verificarPermiso('agregar','superfamilia')}">
                                <f:setPropertyActionListener target="#{superfamiliaBean.operacionActual}"
                                                             value="INSERCION" />
                            </p:commandButton>
                        </f:facet>
                    </p:dataTable>
                    
                </h:form>
            </p:panel>
        </center>
    </ui:define>
    <ui:define name="extra">
        <!-- Dialogo para Agregar y Modificar Super-Familia -->
        <p:dialog id="guardarSuperFamiliaDlg" 
                  header="Datos de Súperfamilia" 
                  widgetVar="guardarSuperFamiliaWgt" 
                  resizable="false" 
                  modal="true"
                  closable="false"
                  draggable="false"
                  style="font-size: 85%">
            <h:form id="guardarSuperFamiliaFrm">
               <p:messages id="mensaje" 
                            globalOnly="true" 
                            redisplay="false"
                            autoUpdate="true"/>
                <h:panelGrid id="guardarSuperFamiliaPnl" 
                             columns="3" 
                             style="margin-bottom:10px; font-size: 85%">
                    <h:outputLabel for="codigoordenTxt" 
                                   value="Orden / Suborden:" />
                    <p:selectOneMenu id="codigoordenTxt" 
                                     value="#{superfamiliaBean.entidad.orden}"
                                     filter="true"
                                     required="true"
                                     filterMatchMode="contains">
                        <f:selectItem itemLabel="Seleccione..." 
                                      itemValue="" />
                        <f:selectItems value="#{superfamiliaBean.listaOrden}" />
                        <f:converter converterId="ordenConverter" />                        
                    </p:selectOneMenu>
                    <p:panel style="border:none; font-size: 85%">
                        <p:tooltip for="codigoordenTxt" 
                                   showEvent="focus" 
                                   hideEvent="blur" 
                                   rendered="#{superfamiliaBean.tieneErrores('guardarSuperFamiliaFrm:codigoordenTxt')}">
                            <p:message id="codigoordenMsg" 
                                       for="codigoordenTxt"
                                       display="text" />
                        </p:tooltip>
                    </p:panel>
                    <h:outputLabel for="nombresuperfamiliaTxt" 
                                   value="Nombre de la súperfamilia: " />
                    <p:inputText id="nombresuperfamiliaTxt" 
                                 title="Obligatorio" 
                                 value="#{superfamiliaBean.entidad.nombre}">
                                 <f:attribute name="regex" value="#{regex.textoobligatorio}" />
                                 <f:attribute name="formato" value="Solo Caracteres" />
                                 <f:validator validatorId="regexValidator" />
                    </p:inputText>
                    <p:panel style="border:none; font-size: 85%">
                        <p:tooltip for="nombresuperfamiliaTxt" 
                                   showEvent="focus" 
                                   hideEvent="blur" 
                                   rendered="#{superfamiliaBean.tieneErrores('guardarSuperFamiliaFrm:nombresuperfamiliaTxt')}">
                            <p:message id="nombresuperfamiliaMsg" 
                                       for="nombresuperfamiliaTxt"
                                       display="text" />
                        </p:tooltip>
                    </p:panel>
                    
                    <h:outputLabel for="estadoTxt" 
                                   value="Habilitado: " 
                                   rendered="#{superfamiliaBean.operacionActual == 'ACTUALIZACION'
                                               and not superfamiliaBean.entidad.habilitado}"/>
                    <p:selectBooleanCheckbox id="habilitadoTxt" 
                                             value="#{superfamiliaBean.entidad.habilitado}"
                                             rendered="#{superfamiliaBean.operacionActual == 'ACTUALIZACION'
                                                         and not superfamiliaBean.entidad.habilitado}"/>
                    <p:panel style="border:none; font-size: 85%"
                             rendered="#{superfamiliaBean.operacionActual == 'ACTUALIZACION'
                                         and not superfamiliaBean.entidad.habilitado}">
                        <p:tooltip for="habilitadoTxt" 
                                   showEvent="focus" 
                                   hideEvent="blur" 
                                   rendered="#{superfamiliaBean.tieneErrores('guardarsuperfamiliaFrm:habilitadoTxt')}">
                            <p:message id="habilitadoMsg" 
                                       for="habilitadoTxt"
                                       display="text" />
                        </p:tooltip>
                    </p:panel>
                    
                </h:panelGrid>
                <p:separator/>
                <br/>
                <p:commandButton id="guardarBtn"  
                                     actionListener="#{superfamiliaBean.guardarEntidad}"
                                     oncomplete="if ( !args.validationFailed ) guardarSuperFamiliaWgt.hide()" 
                                     update="@form, :tablaSuperFamiliaFrm:tablaSuperFamiliaDtb" 
                                     value="Guardar" 
                                     icon="ui-icon-disk" 
                                     title="Guardar"
                                     style="float:right; font-size: 85%"/>
                <p:commandButton value="Cancelar" 
                                     actionListener="#{superfamiliaBean.revertirCambios}" 
                                     onclick="guardarSuperFamiliaWgt.hide()"
                                     icon="ui-icon-cancel" 
                                     title="Cancelar"
                                     immediate="true"
                                     style="float:right; font-size: 85%"/>
            </h:form>
        </p:dialog>
        
        <!-- Diálogo de confirmación de eliminación -->
        <p:confirmDialog id="confirmacionDlg" 
                         message="¿Está seguro que desea eliminar éste registro?" 
                         header="Eliminar Súper-Familia" 
                         widgetVar="confirmacionWgt" 
                         severity="alert"
                         width="300"
                         style="font-size: 85%">    
            <h:form>
            <p:messages 
             id="mensajesMsg" 
             globalOnly="true" />
                    <p:commandButton value="Eliminar"
                                     actionListener="#{superfamiliaBean.eliminarEntidad}"
                                     icon="ui-icon-trash" 
                                     update="@form,:tablaSuperFamiliaFrm:tablaSuperFamiliaDtb"
                                     oncomplete="if ( !args.validationFailed ) confirmacionWgt.hide()"
                                     style="float:right; font-size: 85%"/>
                    <p:commandButton value="Cancelar"
                                     update="@form"
                                     oncomplete="confirmacionWgt.hide()" 
                                     icon="ui-icon-cancel"
                                     style="float:right; font-size: 85%">
                        <f:setPropertyActionListener target="#{superfamiliaBean.operacionActual}" 
                                                     value="NINGUNA" />
                    </p:commandButton>
            </h:form>
        </p:confirmDialog>
    </ui:define>
</ui:composition>